草庐IT

javascript - 赋值返回的值

全部标签

ruby - Ruby 如何返回两个值?

每当我交换数组中的值时,我都会确保将其中一个值存储在引用变量中。但是我发现Ruby可以返回两个值,也可以自动交换两个值。例如,array=[1,3,5,6,7]array[0],array[1]=array[1],array[0]#=>[3,1]我想知道Ruby是如何做到这一点的。 最佳答案 与其他语言不同,Ruby中任何方法调用的返回值始终是一个对象。这是可能的,因为就像Ruby中的所有内容一样,nil本身就是一个对象。您将看到三种基本模式。不返回特定值:defnothingendnothing#=>nil返回一个奇异值:defs

ruby-on-rails - 如果字符串为空则返回一些默认值

我经常需要检查某些值是否为空,然后像这样写“没有数据”:@user.address.blank??"Wedon'tknowuser'saddress":@user.address当我们有大约20-30个字段需要以这种方式处理时,它就变得丑陋了。我所做的是使用或方法扩展String类classStringdefor(what)self.strip.blank??what:selfendend@user.address.or("Wedon'tknowuser'saddress")现在看起来好多了。但它仍然是原始和粗糙的如何更好地解决我的问题。也许扩展ActiveSupport类或使用辅助方

ruby - 返回 Ruby 正则表达式的第一个匹配项

我正在寻找一种在Ruby中对字符串执行正则表达式匹配并使其在第一个匹配项时短路的方法。我正在处理的字符串很长,从标准方式(match方法)来看,它会处理整个字符串,收集每个匹配项,并返回一个包含所有匹配项的MatchData对象。match=string.match(/regex/)[0].to_s 最佳答案 你可以试试String#[](如variableName[/regularexpression/])。这是IRB的示例输出:names="erikkallejohananderserikkallejohananders"#=>

ruby - 获取给定名称的实例变量的值

一般来说,我如何才能获得对名称在字符串中的对象的引用?更具体地说,我有一个参数名称列表(成员变量-动态构建,所以我不能直接引用它们)。每个参数都是一个对象,也有一个from_s方法。我想做类似下面的事情(这当然行不通......):define_method(:from_s)do|arg|@ordered_parameter_names.eachdo|param|instance_eval"field_ref=@#{param}"field_ref.from_s(param)endend 最佳答案 实现这一点的最惯用的方法是:som

ruby - 返回随机 bool 值的最佳方式

在构建虚假种子数据时,我一直在使用它来返回true或false。只是想知道是否有人有更好、更简洁或更详细的方法来返回true或false。rand(2)==1?true:false 最佳答案 使用Array#sample的声明性片段:random_boolean=[true,false].sample 关于ruby-返回随机bool值的最佳方式,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

ruby - 从一个方法返回两个或多个值

是否有可能从方法返回多个值?像这样:defsomeMethod()return["a",10,SomeObject.new]end[a,b,c]=someMethod 最佳答案 defsumdiff(x,y)returnx+y,x-yend#=>nilsumdiff(3,4)#=>[7,-1]a=sumdiff(3,4)#=>[7,-1]a#=>[7,-1]a,b=sumdiff(3,4)#=>[7,-1]a#=>7b#=>-1a,b,c=sumdiff(3,4)#=>[7,-1]a#=>7b#=>-1c#=>nil

ruby - 如何在 Ruby 中返回数组的一部分?

对于Python中的列表,我可以使用以下代码返回其中的一部分:foo=[1,2,3,4,5,6]bar=[10,20,30,40,50,60]half=len(foo)/2foobar=foo[:half]+bar[half:]由于Ruby在数组中执行所有操作,我想知道是否有类似的东西。 最佳答案 是的,Ruby的数组切片语法与Python非常相似。这是数组索引方法的ri文档:---------------------------------------------------------------Array#[]array[in

ruby - 如何按散列中的值对散​​列数组进行排序?

此Ruby代码的行为与我预期的不同:#createanarrayofhashessort_me=[]sort_me.push({"value"=>1,"name"=>"a"})sort_me.push({"value"=>3,"name"=>"c"})sort_me.push({"value"=>2,"name"=>"b"})#sortsort_me.sort_by{|k|k["value"]}#sameorderasabove!putssort_me我希望通过键“值”对哈希数组进行排序,但它们打印时未排序。 最佳答案 Ruby的s

ruby - 动态常量赋值

classMyClassdefmymethodMYCONSTANT="blah"endend给我错误:SyntaxError:dynamicconstantassignmenterror为什么这被认为是一个动态常数?我只是为其分配一个字符串。 最佳答案 您的问题是,每次运行该方法时,您都会为常量分配一个新值。这是不允许的,因为它使常量变得非常量;即使字符串的内容是相同的(至少就目前而言),实际的字符串对象本身在每次调用该方法时都是不同的。例如:deffoop"bar".object_idendfoo#=>15779172foo#=>

ruby - 在 Ruby 中显式返回是好的风格吗?

来自Python的背景,当涉及到样式时,总有一种“正确的方法”(一种“Pythonic”方式),我想知道Ruby是否也存在同样的情况。我一直在使用我自己的风格指南,但我正在考虑发布我的源代码,我希望它遵守任何可能存在的不成文规则。在方法中显式键入return是“Ruby之道”吗?我已经看到它在有和没有的情况下都完成了,但是有正确的方法吗?是否有合适的时间来做这件事?例如:defsome_func(arg1,arg2,etc)#Dosomestuff...returnvalue# 最佳答案 老(和“已回答”)问题,但我会投入我的两分钱